package one;

import java.sql.SQLOutput;

class Animal{
    public void move(){
        System.out.println("动物可以移动");
    }
}

class Dog extends Animal{
    public void move(){
        super.move(); // 应用super类的方法          当需要在子类中调用父类的被重写方法时，要使用 super 关键字
        System.out.println("狗可以跑和走");
    }
    public void bark(){
        System.out.println("狗可以吠叫");
    }
}

public class OverRide{
    public static void main(String args[]){

        Animal b = new Dog(); // Dog 对象         重写方法被调用时，看对象的类型---------------new谁就调谁的，这是规定
        b.move(); //执行 Dog类的方法
        //b.bark();                              //b的引用类型是Animal没有bark()方法，除非Animal类有bark方法，且子类dog继承了其bark方法
        Dog c = new Dog();
        c.move();
        c.bark();                                //总结：先判断代码是否正确（是什么类，类中有没有该方法），然后判断怎么执行（new谁就调谁）
    }
}
